INSERT, UPDATE, এবং DELETE Operations গাইড ও নোট

Big Data and Analytics - হাইভ (Hive) - Hive Transactions এবং ACID Properties
353

Hive, Hadoop-এর ওপরে তৈরি একটি ডেটাবেস ম্যানেজমেন্ট সিস্টেম, যা বড় ডেটাসেটের জন্য কার্যকরী এবং স্কেলেবল। যদিও Hive মূলত একটি data warehouse সিস্টেম, এবং এটি Hadoop এর জন্য SQL-অনুরূপ কুয়েরি ভাষা (HiveQL) প্রদান করে, তবে Hive-এর মধ্যে কিছু সীমাবদ্ধতা রয়েছে। এক্ষেত্রে INSERT, UPDATE, এবং DELETE অপারেশনগুলোর ক্ষেত্রে কিছু অতিরিক্ত বিবেচনা এবং কনফিগারেশন থাকতে পারে। Hive সাধারণত batch processing এর জন্য ডিজাইন করা হলেও, কিছু ট্রানজেকশনাল অপারেশন সমর্থন করে।

Hive-এ INSERT Operation


INSERT অপারেশন Hive-এ ডেটা টেবিলে নতুন রেকর্ড যোগ করার জন্য ব্যবহৃত হয়। Hive সাধারণত দুটি ধরণের INSERT অপারেশন সমর্থন করে:

১. INSERT INTO

এই অপারেশনটি একটি টেবিলের মধ্যে নতুন ডেটা যোগ করে, যেখানে পুরোনো ডেটা কোনওভাবেই পরিবর্তিত হয় না। এটি একটি সোজা INSERT অপারেশন।

উদাহরণ:
INSERT INTO TABLE employees
VALUES (1, 'John Doe', 45000);

এই কুয়েরি employees টেবিলে একটি নতুন রেকর্ড (id=1, name='John Doe', salary=45000) যোগ করবে।

২. INSERT OVERWRITE

INSERT OVERWRITE ব্যবহার করে, আপনি একটি টেবিলের পুরোনো ডেটা সম্পূর্ণভাবে মুছে ফেলে নতুন ডেটা আপলোড করতে পারেন। এটি সাধারণত ডেটার আপডেট বা পরিবর্তন করতে ব্যবহৃত হয়, যেখানে টেবিলের সমস্ত ডেটা নতুন ডেটা দিয়ে প্রতিস্থাপিত হয়।

উদাহরণ:
INSERT OVERWRITE TABLE employees
SELECT * FROM new_employees;

এখানে, employees টেবিলের সমস্ত পুরোনো ডেটা new_employees টেবিল থেকে প্রাপ্ত ডেটা দিয়ে প্রতিস্থাপিত হবে।


Hive-এ UPDATE Operation


Hive সাধারণত UPDATE অপারেশন সমর্থন করে না, কারণ এটি মূলত batch processing-এর জন্য তৈরি করা হয়েছে। তবে, ACID (Atomicity, Consistency, Isolation, Durability) সমর্থিত Transactional Tables-এ কিছু সীমিত UPDATE সমর্থন করা হয়, বিশেষত Hive 0.14 সংস্করণ থেকে ACID ট্রানজেকশন সমর্থন যোগ করা হয়েছে।

Transactional Tables:

Hive-এ UPDATE করতে চাইলে আপনাকে Transactional Tables সক্রিয় করতে হবে। Transactional tables ব্যবহার করার জন্য Hive-এ ACID সমর্থন সক্ষম করা প্রয়োজন। এর জন্য ORC ফরম্যাটে টেবিল তৈরি করতে হয় এবং Transactional ফ্ল্যাগ true করতে হয়।

ACID সক্রিয় করার উদাহরণ:
SET hive.txn.manager=org.apache.hadoop.hive.ql.txn.HiveTxnManager;
SET hive.support.concurrency=true;
SET hive.enforce.bucketing=true;
SET hive.exec.dynamic.partition.mode=nonstrict;

এখানে, Hive-এ ACID ট্রানজেকশন সক্রিয় করা হয়েছে, যার মাধ্যমে আপনি UPDATE অপারেশন চালাতে পারবেন।

উদাহরণ: ACID টেবিলের মধ্যে UPDATE
UPDATE employees SET salary = 50000 WHERE id = 1;

এটি employees টেবিলের id = 1 রেকর্ডটির salary আপডেট করবে।


Hive-এ DELETE Operation


Hive-এ DELETE অপারেশনও ACID সমর্থিত টেবিলগুলোতে কিছুটা সীমাবদ্ধ। Hive-এ সাধারণ DELETE অপারেশন চালানো যেতে পারে শুধুমাত্র Transactional Tables-এ। তবে, Hive 0.14 সংস্করণ থেকে DELETE অপারেশন সমর্থিত হয়েছে, এবং এটি ACID ট্রানজেকশনের সাথে কাজ করে।

Transactional Tables ব্যবহার:

Hive-এ DELETE করার জন্য Transactional Tables ব্যবহার করতে হবে, যেখানে ACID সমর্থন সক্রিয় করা থাকে।

উদাহরণ: ACID টেবিলের মধ্যে DELETE
DELETE FROM employees WHERE id = 2;

এটি employees টেবিলের id = 2 রেকর্ডটি মুছে ফেলবে।


Hive-এ INSERT, UPDATE, এবং DELETE Operations এর সীমাবদ্ধতা


  1. Batch Processing: Hive মূলত batch processing এর জন্য তৈরি করা হয়েছে, এবং real-time ট্রানজেকশনাল অপারেশনগুলোর জন্য উপযুক্ত নয়। তবে ACID সমর্থিত টেবিলগুলির মধ্যে কিছু ট্রানজেকশনাল অপারেশন সম্ভব।
  2. Limited ACID Support: Hive 0.14 সংস্করণ থেকে ACID (Atomicity, Consistency, Isolation, Durability) সমর্থিত হয়েছে, কিন্তু এই ফিচারটি সক্রিয় করতে ORC file format, Transactional Tables, এবং বিশেষ কনফিগারেশন প্রয়োজন হয়।
  3. Performance Overhead: UPDATE এবং DELETE অপারেশনগুলি INSERT OVERWRITE এবং INSERT INTO অপারেশনগুলির তুলনায় আরও বেশি I/O এবং compute রিসোর্স ব্যবহার করে, বিশেষ করে যখন টেবিলগুলো খুব বড় হয়।
  4. Transactional Tables Setup: Hive-এ UPDATE এবং DELETE করতে হলে Transactional Tables তৈরি করতে হয়, যা অতিরিক্ত কনফিগারেশন এবং রিসোর্সের প্রয়োজন।

উপসংহার


INSERT, UPDATE, এবং DELETE অপারেশনগুলি Hive-এ ডেটার প্রক্রিয়া এবং আপডেট করার জন্য অত্যন্ত গুরুত্বপূর্ণ। তবে, Hive-এ UPDATE এবং DELETE অপারেশন সম্পাদন করার জন্য Transactional Tables এবং ACID সমর্থন সক্রিয় করা প্রয়োজন। Hive সাধারণত batch processing এর জন্য ডিজাইন করা হয়েছে, তবে কিছু সীমাবদ্ধতার সাথে real-time transactional সমর্থনও প্রদান করা হচ্ছে। INSERT INTO এবং INSERT OVERWRITE অপারেশনগুলো Hive-এ অধিক ব্যবহৃত হলেও, ট্রানজেকশনাল অপারেশনগুলি Hive-এর সক্ষমতার মধ্যে নতুন মাত্রা যোগ করেছে।

Content added By
Promotion

Are you sure to start over?

Loading...